
\input{chapters/introduction/ft}
\chapter{Einleitung}\label{chapter:intro}

\section{Einf"uhrung des Benutzerprofils}
%Bei {\bf Benutzerprofile} \engl{user profiles} handelt es sich 
{\bf Benutzerprofile} sind
 Benutzer charakterisierende Informationen. Sie dienen dazu, Benutzer zu verwalten, z.B. die Vergabe von Rechten, das Anbieten von individuellen Informationen und Diensten usw.  Dieser Begriff stammt aus Verwaltungsinformationen von Betriebssystemen f"ur Multi-Benutzer. Durch die schnelle, weltweite Explosion des Internets sind Benutzerprofile f"ur Web-Anwendungen "uberall zum Einsatz gekommen, um dem rasenden Anstieg der Web-Benutzer gerecht zu werden und diese zu verwalten. Dabei wurde die Nutzung von Benutzerprofilen weiter entwickelt.
Zum Beispiel wird im Folgenden ein Modell \cite{HSD98} von Benutzerprofilen, das f"ur {\em elektronische Visitenkarten} \ab{VCard} zur Verf"ugung steht, vorgestellt.
\subsection{Modellierung von Benutzerprofilen}
In einem f"ur die {\em vCard} typischen Benutzerprofil werden die Attribute inhaltlich in einzelne Abschnitte gegliedert und hierarchisch aufgebaut. Ein Benutzerprofil kann folgende Informationen enthalten:
\begin{enumerate}
\item Identifikator
\item digitales Zertifikat des Benutzers
\item demographische Information
\item Zahlungsinformation
\item Beziehungen (mit anderen Benutzern)
\item Bewertungen, Interessen, Qualifikationen, pers"onliche Pr"aferenzen
\item Transaktions-Historie (z.B. Benutzer-Aktionen  oder besuchte Web Seiten)
\end{enumerate}
In diesem Modell werden nicht nur  statische Informationen von Benutzern dargestellt, sondern auch deren dynamische Handlungsweisen. Die vierten bzw. siebten Attribute des Modells beschreiben die Aktionen, die von Benutzern online ausgef"uhrt werden. Ausgehend von diesem Beispiel-Modell reichen die traditionellen Benutzerprofile f"ur moderne Software-Anwendungen nicht mehr aus. Dazu ist ein dynamisches Benutzerprofil im Vergleich mit dem statischen erforderlich.
%------------------------------------
\subsection{Kategorisierung von Benutzerprofilen}
Zum Unterscheiden statischer und dynamischer Informationen lassen sich Benutzerprofile in zwei Teile spalten. Im Papier \cite{Zicari06} wird beide Benutzerprofile wie die folgende beschrieben:
\begin{figure}[htb]
\centering \mbox{
%\subfigure[]{
\begin{minipage}[c]{10cm}
{\em "`Such a profile contains two parts of data: one
obvious, given directly by the user and one less obvious,
inferred by the user's behavior during his visits on the site."'}
\end{minipage}
%}
}
\end{figure}\\
Hierbei werden die Definitionen beider Benutzerprofile gegeben:
\begin{itemize}
	\item {\bf Obvious Profiles} \ab{OP}, die durch einmalige Eingaben von Benutzern festgehalten werden k"onnen.
	\item {\bf None-Obvious Profiles} \ab{NOP}, die die Informationen der Interaktionen zwischen Benutzern und Software-Anwendungen, n"amlich Handlungsweisen von den Benutzern in einer Web-Site , notiert sind.
\end{itemize}
Diese notierten Handlungsweisen in NOP's beschreiben nur, welche Aktionen von Benutzern ausgef"uhrt werden, und selbst keine Bedeutung haben. Sie m"ussen durch spezifische Verfahren analysiert werden, um dynamische Charakteristiken von Benutzern herausziehen zu k"onnen. Damit lassen sich Benutzerprofile weiter entwickeln, um diese an moderne Software- und Web-Anwendungen anzupassen.
%-----------------------
%-----------------------
%\section{None-Obvious Profile}
%Bei {\bf None-Obvious Profiles} handelt es sich um notierte Handlungsweisen von Benutzern. I



\section{Das Gugubarra-Projekt}
Das Gugubarra\footnote{Gugubarra ist der urspr"ungliche Namen (guuguubarra) von dem Kookaburra Vogel}-Projekt \cite{gugu} begann im Jahr 2004 und wurde von der Datenbank-Gruppe (DBIS) am Computer Science Institut der Johann Wolfgang Goethe-Universit"at Frankfurt durchgef"uhrt, um ein Instrument f"ur eine bessere Verwaltung der Community von registrierten Web-Benutzern aufzubauen. Das Gugubarra-Projekt bietet eine komplette L"osung zur Erfassung der Informationen von Handlungsweisen und zum Berechnen bzw. Analysieren von NOP's f"ur Web-Anwendungen.

\subsection{Teilprojekte des Gugubarra}
Das Gugubarra-Projekt besteht aus drei Teilprojekten, sowie Designer, NOP-Engine und Clustering.
Durch Designer werden die Handlungsweisen von Benutzern notiert und in einem gewissen Format abgespeichert. NOP-Engine benutzt diese wohlgeformte notierte Handlungsweisen, um NOP's zu berechnen. Die Ergebnisse von NOP-Engine dienen der weiteren Bearbeitung und Analyse von Clustering. Dieser Ablauf wird in der Abbildung \ref{figure:processgugu} dargestellt. 
\figureProcessGugu
  %Ausgehend von dieser Beschreibung wird  Imple
\subsection{Methodik zum Berechnen von NOP's}
Zum Berechnen von NOP's bietet das Gugubarra-Projekt auf der theoretischen Ebene eine konkrete Methodik f"ur die NOP-Engine. Diese Methodik beschreibt den Kernprozess der Kalkulation von NOP's mit einer Menge von mathematischen Formeln. Zur Implementierung von NOP-Engine ist eine Umwandlung dieser mathematischen Beschreibung in einen Algorithmus erforderlich.

\section{Aufgabenstellung}
Die Aufgaben dieser vorliegenden Arbeit werden in zwei Bereiche aufgeteilt. Zuerst soll die dem Berechnen von NOPs zugrunde liegenden Methodik in einem Algorithmus in ein anschauliches Format gebracht werden. Dadurch kann seine Komplexit"at analysiert werden. Im zweiten Bereich soll die NOP-Engine als eine Web-Anwendung Implementiert werden. Als Programmiersprache wird die Sprache JAVA ausgew"ahlt, da sie im Bereich der Plattformunabh"angigkeit und auch vor allem auf Grund ihres vermehrten Einsatzes in Web-Anwendungen sehr gute Referenzen hat. Die Implementierung soll eine objektorientierte L"osung zum Berechnen von NOP's bieten. Dabei soll das Persistenz-Framework \kc{Hibernate}\cite{hibernate} als Schnittstelle zur Datenbank zum Einsatz kommen, soweit das Framework \spring \cite{spring} als Applikationsframework f"ur Web-Anwendungen, um weitestgehend modularisierte und einfach erweiterbare zukunftsorientiert Entwicklung zu f"ordern und zu gew"ahrleisten. Schlie"slich soll ein auf Web-Seiten basiertes Frontend f"ur NOP-Engine mit dem Web-Applikation Framework {\em JavaServer Face} \ab{JSF} \cite{jsf} aufgebaut werden, um eine freundliche Benutzerschnittstelle zur Anwendung der NOP-Engine anzubieten. In Diesem Frontend sollen nur die wesentlichen Elemente zum Berechnen von NOP's dargestellt werden. Auf dessen Versch"onerung werde ich nicht eingehen. Diese wird als ein neues Thema f"ur anderen Diplomanden zur Verf"ugung gestellt.

\section{Aufbau dieser Arbeit}
An die Einleitung schlie"st sich ein einf"uhrendes Kapitel 1 an, das ein Verst"andnis schafft f"ur das grundlegende Problem bez"uglich des Verwaltens von Web-Benutzern. Au"serdem handelt es den Einsatz des Gugubarra-Projekts bzw. der NOP-Engine. Die weiteren Kapitel dieser vorliegenden Arbeit werden wie folgt dargestellt:
\begin{itemize}
	\item {\bf Kapitel 2 } befasst sich mit den grundlegenden Hintergrundinformationen sowie wichtigen Konzepten, der Methodik der Berechnung von NOP's.
	\item {\bf Kapitel 3 } stellt den "ubersetzten Algorithmus in Form eines Pseudocodes vor bzw. besch"aftigt sich mit der Analyse der Komplexit"at des Algorithmus.
	\item {\bf Kapitel 4 } beschreibt den Prozess mit Hilfe der {{\em Cockburn}-Formatvorlage} und dem Anwendungsdiagramm zum Thema der Anforderungsanalyse der NOP-Eigine. 
	\item {\bf Kapitel 5 } befasst sich mit der Softwarearchitektur der NOP-Engine und dessen Aufbau mit der Programmierungssprache \kc{Java}, den Klassendiagrammen und den Sequenzdiagrammen. In diesem Kapitel werden einige Konzepte von Domain-driven design angewendet zum Aufbauen eines Dom"anenmodell, das die Funktionalit"aten der NOP-Engine erf"ullen kann. Hierzu werden noch die L"osungsvorschlage in Bezug auf die offenen Fragen von NOP-Engine angeboten.
	\item {\bf Kapitel 6} stellt die Implementierung der NOP-Engine sowie die Anwendung von \kc{Hibernate,}\kc{JSF}bzw. \kc{Spring}vor. Hierzu werden die konkreten L"osungen mit der Programmiersprache \kc{Java}und den obenerw"ahnten Frameworks f"ur die offene Fragen der NOP-Engine, sowie die Historisierung von Aktionen, Zonen bzw. NOP's und das freie Ausw"ahlen einer Konkreten Funktion zur Auswertung des Parameters $f$ zur Verf"ugung gestellt. %Am Ende dieses Kapitels wird eine Verteilungsdiagramm zur Verdeutlichung der Verteilungsstruktur der NOP-Engine dargestellt.
	\item {\bf Kapitel 7 } beschreibt die Tests, die bei der Implementierung parallel durchgef"uhrt werden, zum Verifizieren der Korrektheit des Algorithmus und Messen der Funktionalit"aten der NOP-Engine an die Anforderungen. In diesen Tests werden Modul- und Integrationstests mit den modernen Test-Frameworks von {\em Java}, sowie \kc{JUnit,}\kc{JMock,} und dem {\em Test}-Paket von \spring durchgef"uhrt.
	\item {\bf Kapitel 8 } befasst sich zusammenfassend mit allen Ergebnissen der Arbeit. Es zeigt im einem
Ausblick auf, welche noch offenen Fragen bestehen und welche m"oglichen Ankn"upfungspunkte es f"ur weitere
Forschungsarbeiten gibt.
\end{itemize}

